package com.example.cursor_orm.dao;

import com.example.cursor_orm.model.RolePermission;
import java.util.List;

/**
 * 角色权限关联DAO接口
 * 继承BaseDAO并添加角色权限关联特有的查询方法
 */
public interface RolePermissionDAO extends BaseDAO<RolePermission> {
    
    /**
     * 根据角色ID查询角色权限关联列表
     * @param roleId 角色ID
     * @return 角色权限关联列表
     */
    List<RolePermission> findByRoleId(Integer roleId);
    
    /**
     * 根据权限ID查询角色权限关联列表
     * @param permissionId 权限ID
     * @return 角色权限关联列表
     */
    List<RolePermission> findByPermissionId(Integer permissionId);
    
    /**
     * 删除角色的所有权限
     * @param roleId 角色ID
     * @return 影响的行数
     */
    int deleteByRoleId(Integer roleId);
    
    /**
     * 删除权限的所有角色
     * @param permissionId 权限ID
     * @return 影响的行数
     */
    int deleteByPermissionId(Integer permissionId);
    
    /**
     * 为角色分配权限
     * @param roleId 角色ID
     * @param permissionId 权限ID
     * @return 影响的行数
     */
    int assignPermissionToRole(Integer roleId, Integer permissionId);
    
    /**
     * 移除角色的权限
     * @param roleId 角色ID
     * @param permissionId 权限ID
     * @return 影响的行数
     */
    int removePermissionFromRole(Integer roleId, Integer permissionId);
    
    /**
     * 检查角色是否拥有指定权限
     * @param roleId 角色ID
     * @param permissionId 权限ID
     * @return 是否拥有
     */
    boolean hasPermission(Integer roleId, Integer permissionId);
} 